package com.cf.snake.modele;

import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;

/*
import java.awt.Color;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
*/
public class ModeleDuJeu {

	private Serpent serpent;
	private boolean laPartieEstPerdue;
	private Grenouille grenouille;
	
	public ModeleDuJeu() {
        this.serpent = new Serpent();
        this.laPartieEstPerdue = false;
        this.grenouille = new Grenouille();
  }
	//Changements:
	//gestionDirection remplace la procedure gestionDuClavier
	public void gestionDirection(Direction d){
		this.serpent.setDemandeClavier(d);
	}
	//Fin des changements
	
	/*
	public void gestionDuClavier(KeyEvent event) {
		if (event.getKeyCode() == KeyEvent.VK_RIGHT) { // touche flèche droite
            this.serpent.setDemandeClavier(Direction.VERS_LA_DROITE);
      } else if (event.getKeyCode() == KeyEvent.VK_LEFT) { // touche flèche gauche
            this.serpent.setDemandeClavier(Direction.VERS_LA_GAUCHE);
      } else if (event.getKeyCode() == KeyEvent.VK_UP) { // touche flèche haut
            this.serpent.setDemandeClavier(Direction.VERS_LE_HAUT);
      } else if (event.getKeyCode() == KeyEvent.VK_DOWN) { // touche flèche bas
            this.serpent.setDemandeClavier(Direction.VERS_LE_BAS);
      }
  }*/
	
	private int getNiveau() {
	      return (this.serpent.getEatCount() / 5) + 1;
	}
	
      // le calcul du jeu
      public void calcul() {
    	  if (!this.laPartieEstPerdue) {
    		// calcul de la grenouille
              this.grenouille.calcul();
           // calcul du serpent
              this.serpent.calcul(this.grenouille, getNiveau());
              if (this.serpent.estMort()) {
                    // la partie est perdue car le serpent
                    // a atteint les limites du plateau de jeu
                    this.laPartieEstPerdue = true;
              }
        }
      }
 
      public void affichage(Canvas c) {
   			
			serpent.affichage(c);
			grenouille.affichage(c); 		
		
			// Draw the block to be eaten up..
			//eatBlock = sModel.getEatBlock();
			//c.drawBitmap(mSnakeBody, eatBlock.x_loc, eatBlock.y_loc, null);
			
      }
	public boolean isLaPartieEstPerdue() {
		return laPartieEstPerdue;
	}
 
      
}